package main

import (
	"encoding/json"
	"jlpay-sdk-go/pkg/jlpay/demo"
	"jlpay-sdk-go/pkg/jlpay/models/marketing"
	marketingService "jlpay-sdk-go/pkg/jlpay/services/marketing"
	"jlpay-sdk-go/pkg/jlpay/utils"
)

// 商户活动配置查询示例
func merchantActivityConfigQueryDemo(merchantActivityConfigQueryService *marketingService.MerchantActivityConfigQueryService) {
	// 检查服务是否为空
	if merchantActivityConfigQueryService == nil {
		utils.Errorf("商户活动配置查询服务为空")
		return
	}

	// 创建商户活动配置查询请求
	request := marketing.NewMerchantActivityConfigQueryRequest()

	// 设置请求参数 - 与Python版本保持一致
	request.SetActID("act_123456789")
	request.SetMerchNo("merch_123456789")

	// 发送请求
	response, err := merchantActivityConfigQueryService.Execute(request)
	if err != nil {
		utils.Errorf("商户活动配置查询请求失败: %v", err)
		return
	}

	// 处理响应 - 与Python版本保持一致
	if response.IsSuccess() {
		utils.Info("商户活动配置查询成功！")
		// 打印完整的响应报文
		originData := response.GetOriginData()
		if originData != nil {
			responseJSON, _ := json.MarshalIndent(originData, "", "  ")
			utils.Info("响应报文：%s", string(responseJSON))
		}
	} else {
		utils.Errorf("商户活动配置查询失败: %s - %s", response.GetRetCode(), response.GetRetMsg())
	}
}

func main() {
	// 设置日志级别为info，显示详细的调试信息
	utils.SetLogLevel("info")

	utils.Info("=============================")
	utils.Info("===== 商户活动配置查询示例 开始 =====")
	utils.Info("=============================")

	// 创建配置对象和商户活动配置查询服务
	config := demo.CreateDemoConfig()
	merchantActivityConfigQueryService := marketingService.NewMerchantActivityConfigQueryService(config)

	merchantActivityConfigQueryDemo(merchantActivityConfigQueryService)

	utils.Info("=============================")
	utils.Info("===== 商户活动配置查询示例执行完毕 =====")
	utils.Info("=============================")
}
